Skip to content

tantivy: add build-tantivy.yml for riscv64 wheels - #1639

Merged
luhenry merged 1 commit into
mainfrom
tantivy
Sep 8, 2026
Merged

tantivy: add build-tantivy.yml for riscv64 wheels#1639
luhenry merged 1 commit into
mainfrom
tantivy

Conversation

@luhenry

@luhenry luhenry commented Sep 8, 2026

Copy link
Copy Markdown
Member

Compiles the PyO3/maturin Python bindings for the Tantivy full-text search engine, per-interpreter (no abi3), into a .so extension around the vendored Rust tantivy crate and its dependency tree. Upstream publishes no riscv64 wheel.

Mirrors upstream's publish.yaml linux job.

Differs from upstream

  • Rust toolchain installed via rustup in-container - upstream ships no [tool.cibuildwheel].
  • musllinux dropped - rustup.rs ships no riscv64 musl toolchain.

Testing

  • Upstream's pytest suite, plus a --doctest-modules --pyargs pass for the compiled classes' embedded doctests, run against the installed wheel rather than the checkout (the repo-root tantivy/ package would otherwise shadow it).

License: OK

luhenry added a commit that referenced this pull request Sep 8, 2026
Builds the tantivy 0.26.0 Python bindings (quickwit-oss/tantivy-py) for
riscv64 via cibuildwheel driving the maturin/pyo3 backend directly from
the upstream checkout, matrix cp312/cp313/cp314/cp314t. Rust toolchain is
installed in-container via rustup since the project ships no
[tool.cibuildwheel]. Tests run the upstream pytest suite plus the
doctest-modules pass over the installed wheel's compiled docstrings.
@luhenry
luhenry merged commit cc580d6 into main Sep 8, 2026
4 of 8 checks passed
@luhenry
luhenry deleted the tantivy branch September 8, 2026 16:25
@luhenry luhenry linked an issue Sep 8, 2026 that may be closed by this pull request
luhenry added a commit that referenced this pull request Sep 9, 2026
Follow-up to #1639, merged before its `cp312`/`cp313`/`cp314`/`cp314t` CI legs had finished. All four failed on the same second test step: `python -m pytest --pyargs tantivy --doctest-modules` exits 5 (no tests ran).

Confirmed locally against the real published 0.25.1 wheel: tantivy's compiled classes report `__module__` as `tantivy.tantivy` (the compiled submodule), not `tantivy` (the wrapper package `from .tantivy import *` re-exports them into), so pytest's doctest-modules collector finds nothing there whether invoked via `--pyargs tantivy` or a path-based `tantivy` target - matching what a bare `doctest.testmod()` call against the real submodule shows. This drops that dead second test step; the real suite (`tests/`, 154 items, including the markdown-doc doctests via `mktestdocs`) already covers what upstream's own CI runs and is unaffected.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

tantivy riscv64 support

1 participant